<%--
  Created by IntelliJ IDEA.
  User: Teacher
  Date: 2025/9/8
  Time: 15:01
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>四大作用域</title>
</head>
<body>
<%
    // 四个作用域由小到大分别为:pageContext、request、session、application
    pageContext.setAttribute("msg","Hello pageContext");
    request.setAttribute("msg","Hello request");
    session.setAttribute("msg","Hello session");
    application.setAttribute("msg","Hello application");
    // 页面转发到scope2
    // request.getRequestDispatcher("/jsp/scope2.jsp").forward(request,response);
    // 当页面跳转之后,更换了页面,因此pageContext作用域数据丢失
    // 转发表示两者共享请求,因此其他作用域数据仍然存在
    // 重定向到scope2
    response.sendRedirect(request.getContextPath()+"/jsp/scope2.jsp");
    // 此时两个页面不再共享请求,因此request作用域数据丢失
    // 此时session与application作用域数据仍然存在
    // 当关闭会话(关闭浏览器在重新打开浏览器),直接在浏览器地址栏访问重定向后的页面
    // 此时发现session作用域数据丢失
    // 此时将服务器重新启动后再次直接访问重定向后的页面
    // 此时发现application作用域数据丢失
%>
pageContext:<%=pageContext.getAttribute("msg")%><br>
request:<%=request.getAttribute("msg")%><br>
session:<%=session.getAttribute("msg")%><br>
application:<%=application.getAttribute("msg")%><br>
</body>
</html>
